1. Field of the Invention
The present invention relates generally to the field of software architecture. More specifically, the present invention discloses a method that integrates software and knowledge engineering in knowledge-driven architecture. The method allows developers or business experts to quickly build a software application layer by describing application flow as a set of scenarios and introducing application requirements as related business rules in a knowledgebase. An Application Scenario Player and a Service Connector transform application scenarios into interactions with the knowledgebase, presentation components and underlying application services.
2. Background
There is a gap in the current development process between the initial business input provided by business experts and the final implementation. The current process requires multiple transformations from user requirements into low-level programming functions and data tables. Multiple technology teams work hard to create multiple filter-layers to fill this gap and break the beautiful shapes of reality into small and simplistic pieces, transforming business rules into Boolean logics.
This process hasn't changed much during the last twenty years.
Some time ago, we thought of the C-language as a language for application development, while Assembly was the language for system development. Since the Assembly language was pushed down to the system level, we use languages like C, C++, C#, VB, and Java to code business algorithms in applications. This development paradigm has been in place for about 20 years.
However, the current shift to service-oriented architectures and recent advances in knowledge technologies can allow us to cleanly separate generic services from application-level business rules and specific requirements of user-program or program-program interfaces.
Using a knowledgebase, we can represent requirements as business rules described in “almost natural” language. We can finally shift our focus from ironing out all possible business cases in our design and code to creating flexible application mechanisms that allow us to change and introduce new business rules on-the-fly.
We can also improve the pattern recognition process. Imagine that a set of rules which defines a recognition process, for example in a grammar file, is enhanced with the ability to access a knowledge engine. This would promise more intelligent recognition, based not only on the multiple choices prepared in the file, but also on existing facts and rules of the available world of knowledge, associations between related topics, etc.
Software applications often represent a new combination of existing software components. These components often need to be polished or changed to fit into a new application mosaic. Service components are glued and compiled together with specific business rules, expressed as programming algorithms, that distinguish the application.
Creating an application is a project, often a big project, for multiple teams; the initial team of business experts that know “what should be done” is just the tip of the iceberg. This invention can improve the development process by decreasing the transformation steps required, and thus stop the business requirements from getting watered down and distorted during the process.